package com.meatball.dji.common.error

import com.dji.sdk.common.IErrorInfo

/**
 * TODO 通用错误枚举类，定义了一系列的错误代码和消息。
 *
 * @property code
 * @property msg
 *
 * @author 张翔宇
 * @since 2024年4月8日
 */
enum class CommonErrorEnum(
    private val code: Int,
    private val msg: String
) : IErrorInfo {
    ILLEGAL_ARGUMENT(200001, "非法参数"),
    REDIS_DATA_NOT_FOUND(201404, "Redis数据不存在"),
    DEVICE_OFFLINE(212015, "设备离线"),
    GET_ORGANIZATION_FAILED(210230, "获取组织失败"),
    DEVICE_BINDING_FAILED(210231, "绑定设备失败"),
    NON_REPEATABLE_BINDING(210232, "不可重复绑定"),
    GET_DEVICE_BINDING_STATUS_FAILED(210233, "获取设备绑定状态失败"),
    SYSTEM_ERROR(600500, "系统错误"),
    SECRET_INVALID(600100, "密钥无效"),
    NO_TOKEN(600101, "无令牌"),
    TOKEN_EXPIRED(600102, "令牌过期"),
    TOKEN_INVALID(600103, "令牌无效"),
    SIGN_INVALID(600104, "签名无效");

    /**
     * TODO 获取消息文本
     */
    override fun getMessage(): String = msg

    /**
     * TODO 获取错误代码
     */
    override fun getCode(): Int = code
}